The term “cloud computing” refers to the deployment of groups of remote servers and software networks that allow centralized data storage and online access to computer services or resources. Cloud computing relies on the sharing of resources to achieve coherence and economies of scale. A cloud computing provider may operate one or more data centers to provide on-demand access to computing resources.
In some cloud systems, the cloud computing provider may provide customers with a number of bootable images that are used to allow the customer to customize the cloud services used by the customer. Each bootable image may represent on operating system or application stack that can be executed, as a virtual machine, in a stand-alone environment by the cloud computing provider. The cloud computing provider may offer customers the choice between a number of preconfigured bootable images. The customer may be given the choice to choose between bootable images that instantiate different types of operating systems (e.g., different Linux-based operating systems, different Unix-based operating systems, Microsoft Windows operating systems, etc.), each of which may be pre-configured with different default software settings. For example, a web server bootable image may include software components that are commonly used to implement a web server, such as: a Linux-based server operating system, the Apache Hyper-Text Transfer Protocol (HTTP) Server, the MySQL relational database management system, and the PHP programming language.
When initially provisioning a cloud service, a customer may select the desired bootable image and then indicate that the cloud provider should instantiate (i.e., boot) the bootable image. After booting the image, the customer may customize the selected service (e.g., customize the web server to serve the customer's website). It is desirable that the initial instantiation of the bootable image be performed as quickly as possible.